package com.qumitech.visualnovel.service.account;

import com.qumitech.visualnovel.model.common.BaseRsp;
import com.qumitech.visualnovel.model.dao.app.Account;
import com.qumitech.visualnovel.pubdef.dto.realinfo.UserRealInfoAdminUpdateDTO;
import com.qumitech.visualnovel.pubdef.dto.user.AccountBindDTO;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * AccountService
 *
 * @author bke
 * @date 2018/11/26 10:36
 */
public interface AccountService {
    /**
     * 获取渠道及版本
     * @return 渠道及版本
     */
    Map<String, Object> getChannelsAndVersions();

    /**
     * 获取操作姓名
     * @return 姓名
     */
    String getOperatorName();

    /**
     * 用户列表
     * @param paramMap 用户信息参数
     * @return 用户列表
     */
    BaseRsp listUserRealInfoAdmin(Map<String, String> paramMap);

    /**
     * 更新用户信息
     * @param updateDTO 用户信息参数
     * @return 更新状态
     */
    BaseRsp updateUserRealInfoAdmin(UserRealInfoAdminUpdateDTO updateDTO);

    /**
     * 获取用户 present_id 列表
     * @param uids uids
     * @return 用户列表
     */
    List<Account> getList(List<String> uids);

    /**
     * 用户present_id列表
     * @param presentIds uids
     * @return 用户列表
     */
    List<Account> getPresentList(List<String> presentIds);

    /**
     * 导入excel
     * @param file excel文件
     * @return ID集合
     */
    List<String> importUser(MultipartFile file);

    /**
     * 导出Excel
     * @param request HTTP请求Body
     * @param uids 用户ID list
     * @return 导出Excel文件
     */
    Map<String, Object> exportUserIds(HttpServletResponse request, List<String> uids);

    void bindOldAccount(AccountBindDTO bindDTO);
}
